/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package DataCharts;

import java.awt.Font;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.block.BlockBorder;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYItemRenderer;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.xy.XYDataset;

/**
 *
 * @author Davis
 */
public class LineGraph{
    
    
    
        public static JFreeChart createChart(XYDataset dataset) {

            JFreeChart chart = ChartFactory.createTimeSeriesChart(
                "Customers by Month", "Months","Customers",dataset);

            String fontName = "SansSerif";
            chart.getTitle().setFont(new Font(fontName, Font.BOLD, 18));
            chart.addSubtitle(new TextTitle(" ", new Font(fontName, Font.PLAIN, 14)));

            XYPlot plot = (XYPlot) chart.getPlot();
            plot.setDomainPannable(false);
            plot.setRangePannable(false);
            plot.setDomainCrosshairVisible(true);
            plot.setRangeCrosshairVisible(true);

            plot.getDomainAxis().setLowerMargin(0.0);
            plot.getDomainAxis().setLabelFont(new Font(fontName, Font.BOLD, 14));
            plot.getDomainAxis().setTickLabelFont(new Font(fontName, Font.PLAIN, 12));

            plot.getRangeAxis().setLabelFont(new Font(fontName, Font.BOLD, 14));
            plot.getRangeAxis().setTickLabelFont(new Font(fontName, Font.PLAIN, 12));

            chart.getLegend().setItemFont(new Font(fontName, Font.PLAIN, 14));
            chart.getLegend().setFrame(BlockBorder.NONE);

            XYItemRenderer r = plot.getRenderer();
            if (r instanceof XYLineAndShapeRenderer) {
                XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) r;
                renderer.setBaseShapesVisible(true);
                renderer.setDrawSeriesLineAsPath(false);
                // set the default stroke for all series
                renderer.setAutoPopulateSeriesStroke(false);

            }
            return chart;

    }
}
